草庐IT

leetcode算法-两数相除 前端

全部标签

java - 如何使两点算法之间的最短路径更快?

我写了这个算法。它有效(至少对于我的简短测试用例),但在较大的输入上花费的时间太长。我怎样才能让它更快?//Returnsanarrayoflength2withthetwoclosestpointstoeachotherfromthe//originalarrayofpoints"arr"privatestaticPoint2D[]getClosestPair(Point2D[]arr){intn=arr.length;floatmin=1.0f;floatdist=0.0f;Point2D[]ret=newPoint2D[2];//Ifarrayonlyhas2points,ret

java - Wagner Fischer算法+展示步骤

我用java实现了WagnerFischer算法,但我想显示所有步骤。我搜索但找不到任何想法。很长一段时间后,我试图将每个转换与成本一起保存在矩阵中,然后回到第一个解决方案然后反转它......这是一个好主意,如果是,应该如何我设置条件?kitten->sitting1.replacekwiths2.keepi3.keept4.keept5.replacet6.addg我试图为显示步骤创建函数,但不知道如何解决。importjava.io.File;importjava.io.FileNotFoundException;importjava.util.Scanner;publiccla

一文带你了解区块链中15种共识算法

所有主要的区块链共识算法解释区块链技术席卷全球,提供了一种去中心化且安全的信息存储和传输方式。它还彻底改变了交易的执行方式,随之而来的是广泛的共识算法。在这里,共识算法在确保区块链网络的完整性方面发挥着关键作用。在本文中,我们将探讨所有主要类型的区块链共识算法、它们的含义、优点、缺点,以及为什么它们在区块链技术中必不可少。区块链共识算法共识算法是一组规则或协议,使区块链网络中的节点能够就网络的共享状态达成一致。它们用于确保网络中的所有节点就交易的有效性以及将它们添加到区块链的顺序达成共识。共识算法负责通过确保没有单个节点或节点组可以操纵网络来维护区块链的完整性。出于多种原因,共识算法在区块链技

java - 我怎样才能修改这个视线算法来接受穿过角落的光线?

我正在研究一种基于Theta*的寻路算法,它是A*的一种变体,它提供了一个很好的寻路系统,它不受网格的限制,即使地形/障碍物是基于网格模式的。该系统需要一种视线算法来确定特定路径是否被阻挡。我找到了this非常有用的视线算法,我已经在我的代码中成功地实现了它。不幸的是,它认为以下是无效路径:但是,出于我的目的,我希望这样的路径被认为是有效的。我试图通过使用基本y=mx+b公式检测点是否在线上来修改算法,但算法的不一致使我无法依赖这样的系统。是否有任何有效的方法来修改此算法以允许这样的路径?还有另一种算法会更好吗?请记住,路径的起点和终点不一定必须限制在网格中,因此所有点都使用doubl

java - 各种搜索算法的Big-O运行时间

很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visitthehelpcenter.关闭10年前。如果boolean数组中至少有两个值是true,方法hasTwoTrueValues返回true。为提出的所有三个实现提供Big-O运行时间。//版本1publicbooleanhasTwoTrueValues(boolean[]arr){intcount=0;for(inti=0;i=2;}//版本2publicbooleanhasTwoTrueValues(boolean[]arr){for

java - 请使用 "Hugo Elias"算法生成波形! java

我最近的项目似乎碰壁了,涉及图像上的波浪/波纹生成。我制作了一个可以在网格上使用基本颜色的完美作品;哎呀,我什至根据波浪的高度为颜色添加了阴影。但是,我的总体目标是让这种效果像您看到的那样作用于图像here.我遵循的是一种人们称之为HugoElias方法的算法(如果他真的提出了设计,我就不知道了)。他的教程可以找到here!在学习该教程时,我发现他的伪代码很难理解。我的意思是,在我点击图像上的高度图部分之前,这个概念在很大程度上是有意义的。问题是x和y偏移量会抛出ArrayIndexOutOfBoundsException,因为他将偏移量添加到相应的x或y。如果波浪太大(即在我的例子中

java - 堆的算法

试图重现Heap的算法,以生成整数数组的所有可能排列,但我无法解决除三个以外的其他整数的问题。Heap的算法来自维基百科:proceduregenerate(N:integer,data:arrayofany):ifN=1thenoutput(data)elseforc:=1;c我的代码:publicstaticvoidperm(int[]list,intn){if(n==1){System.out.println(Arrays.toString(list));}else{for(intc=1;c我做错了什么和误解了它?为什么它仅适用于[1,2,3](n=3)作为输入,而不适用于n=2

java - 我认为维基百科上的 Java 矩阵链乘法算法不正确

我几乎可以肯定维基百科页面上matrixChainOrder的Java实现,MatrixChainMultiplication,是不正确的。我会改变它,但我不是一个合格的数学家,并且在没有首先审查我的观察的情况下做出改变是不舒服的。我想我要问的是——我的说法是否正确?k应该改为k+1,因为这个版本是用基于零的索引编写的,这与在同一页面上首次引入的伪代码版本不同。protectedint[][]m;protectedint[][]s;publicvoidmatrixChainOrder(int[]p){intn=p.length-1;m=newint[n][n];s=newint[n][

java - TicTacToe minimax 算法在 4x4 游戏中返回意外结果

在我的方法newminimax499中,我有一个利用内存和alphabeta修剪的minimax算法。该方法通常适用于3x3游戏,但是当我玩4x4游戏时,我会得到奇怪的、意想不到的计算机位置选择。他仍然从不输,但他似乎并不是为了赢而比赛。为了说明这里的问题,我们使用2个3x3和4x4游戏的场景。首先是一个3x3游戏的场景,其中玩家是X并迈出第一步:这还不错,事实上,这正是人们希望计算机执行的操作。现在来看一个4x4游戏的场景。同样,O是计算机,X启动:如您所见,计算机只是将Os一个接一个地按系统顺序排列,只有在它有可能获胜时才打破该顺序来阻止X。这是非常防守的打法,不像在3x3比赛中看

java - 我如何为我的 Java 应用程序的用户前端决定是使用 Swing GUI 还是轻量级 Web 客户端?

当涉及到用户界面时,我似乎总是在内心挣扎。我建立了一个应用程序“引擎”,并倾向于将用户界面推迟到我的算法工作之后。然后我反复尝试决定如何让用户与我的程序交互。就个人而言,我是命令行的粉丝,但我不能指望我的用户普遍如此。在web2.0和ajax时代,我真的很喜欢浏览器的无限可能。另一方面,制作一个Swing前端也不难,而且您通常可以指望向用户呈现更一致的表现(尽管使用像YUI或jQuery这样的良好javascript框架对规范化浏览器大有帮助)。显然,这两种方法都有其优点和缺点。那么,什么标准/参数/情况应该让我使用轻量级(例如基于网络的)GUI?什么标准/参数/情况应该导致我使用更重